パターン、Wiki、XP ―― 時を超えた創造の原則
https://gyazo.com/39f2fb297df4140457409172b2e47c45
デザインパターン,Wiki,XP。 一見,何の関係もなさそうに思えるこの3つは,実は同じ起源から発生した兄弟です。 しかもその起源は,ソフトウェア開発とは何の関係もない異分野の人である,建築家クリストファー・アレグザンダーの思想にあります。 本書では,アレグザンダー(パターンランゲージの発明者),ウォード・カニンガム(Wikiの発明者),ケント・ベック(XPの提唱者)らが織りなす約半世紀の歴史物語をたどりながら,優れた創造を行うための共通原則に迫ります。 (こんな方にオススメ)
・デザインパターンに興味がある方
・XP(エクストリームプログラミング)などのアジャイルな開発手法に興味がある人
はじめに
謝辞
序章 パターン,Wiki,XPの起源へ
Wikiとの遭遇
Wikiとブログ・掲示板の違い
Wikiの正確な定義とは
Wikiをどう使えばよいのか
Wiki誕生の背景を探る
WikiWikiWeb
HyperCardによるパターンブラウザ
ソフトウェア開発におけるパターン
クリストファー・アレグザンダーによるパターンランゲージ
建築,ソフトウェア開発,Wikiの歴史を探る
第1部 建築
1章 クリストファー・アレグザンダーによる美の原理の追及
アレグザンダーの生い立ち
「美」の根本原理の追及
初期の実験
要求条件を1つにまとめるダイアグラムの発明
ベイエリア高速鉄道の計画立案 ── 要求条件間の膨大な関係性の計算
数学的な形式化に対する自己批判
市民によるバークレーの再建 ── 利用者参加による街作りの実験
コラム:『オレゴン大学の実験』におけるブランコの比喩
3章 パターンランゲージ
パターンとパターンランゲージ
パターン形式
パターンの具体例
数学的理論による設計から,利用者参加による設計へ
4章 時を超えた建設の道
解題 ── 時を超えた創造の原則
5章 パターンランゲージによる建築の実際
パターンランゲージの目指す方法論
日本におけるアレグザンダーの受容
6章 アレグザンダーの現在
パターンランゲージという思想
第2部 ソフトウェア開発
ソフトウェア開発の世界へ
オブジェクト指向の勃興 ── Smalltalk
オブジェクト指向とGUI
GUIの普及と一般化 ── Macintosh
OOPSLAの設立 ── オブジェクト指向に関するコミュニティの形成 ソフトウェア概念変革の時代
8章 ソフトウェア開発へのパターンの適用
パターンランゲージをプログラミングへ応用する
「オブジェクト指向プログラムのためのパターン言語の使用」
繰り返し現れる構造に目を向ける人々
「Toward an Architecture Handbook」── OOPSLA/ECOOP 1990
「Architecture Handbook Workshop」── OOPSLA 1991
「Documenting Frameworks using Patterns」── OOPSLA 1992
GoFの結成 ── OOPSLA 1992
Hillside Groupの誕生
「Patterns: Building Blocks for Object-Oriented Architectures」── OOPSLA 1993
PLoPの開催 ── パターンランゲージコミュニティの形成 9章 デザインパターン
『オブジェクト指向における再利用のためのデザインパターン』── デザインパターンの誕生
パターン形式
デザインパターンの具体例
デザインパターンとパターンランゲージの共通点と相違点
デザインパターンの普及
その後のパターンの展開
10章 プロセスへのパターンの適用
ソフトウェア開発における「6つの原理」
「開発工程の生成的パターン言語」── コプリエンによるプロセスパターン
「エピソーズ」── カニンガムによるプロセスパターン
C3プロジェクト ── XP誕生の地
C3プロジェクトにおけるプラクティス
C3プロジェクトの進展
C3プロジェクトの結末
11章 エクストリームプログラミング
『XPエクストリーム・プログラミング入門』── ベックによる開発プロセスの変革
価値,原則,プラクティス
アジャイルマニフェスト
『XPエクストリーム・プログラミング入門 第2版』── XPの再定義
価値
原則
基礎プラクティス
応用プラクティス
XPを代表するプラクティス
組織パターン,プロセスパターンからXPへ
アレグザンダーの6つの原理と,XPのプラクティスの比較
XPとパターンの関係
利用者と設計者の関係を見直す
ソフトウェア開発からアレグザンダーへのフィードバック
第3部 Wiki
12章 HyperCardによるパターンブラウザ
Wikiの前身
Vivariumプロジェクト ── 子どものためのプログラミング環境の実験
HyperCardの誕生 ── 初めての実用的なハイパーテキスト環境
パターンブラウザの誕生 ── HyperCardによるWikiの前身
複数人による共同編集の実験
コラム:CRCカード ── クラス構造の記述
13章 WikiWikiWeb
World Wide Webの誕生
Web上の動的な基盤の形成 ── フォームとCGIの誕生
WikiWikiWebの誕生
WikiWikiWebの名前の由来
Wiki記法 ── HTMLを簡略化した構造化記法
WikiName ── キャメルケースによるリンク表現
Wikiカテゴリ ── 逆リンクを利用したメタページの表現
Wikiとパターンブラウザの共通点と相違点
14章 Wikiモードによるコミュニケーションパターン
Wiki上のコミュニケーション
コミュニケーションパターン
Wikiモード
Wikiページのライフサイクル
Wikiモードとコミュニティの成熟
コラム:パターン形式 ── それゆえしかし形式
15章 Wiki設計原則
カニンガムが満たそうとした設計原則
アレグザンダーの6つの原理とWiki設計原則の比較
XPのプラクティスとWiki設計原則の比較
XPのプラクティスでWikiを使いこなす
C2 WikiがXPの発展に与えた影響
Wikiの本質とは何か
16章 Wikiエンジン
WikiWikiWebのCGIスクリプト
文芸的プログラミング ── 文章のようにプログラムを書く
WikiBase ── Wikiを舞台にした文芸的プログラミング環境
WikiBaseと文芸的プログミングの共通点と相違点
WikiBaseのコードの共有
「WikiWikiWeb」から「Wiki」へ
さまざまなWikiエンジンの誕生と,Wikiサイトの発展
『Wiki Way』の出版とその後のWikiの広がり
Nupedia ── Wikipediaのルーツ
Wikipediaの誕生
コラム:UuU ── Wikipedia最古のページ
フェーズ1 ── UseModWikiの時代
フェーズ1のトークページ ── ドキュメントモードとスレッドモードの分離
Wikipediaのルールと合意形成
フェーズ2 ── Wikipedia専用のWikiエンジン
フェーズ2のトークページ ── スレッドモードの機能化
コラム:カニンガムの予言
フェーズ3 ── MediaWikiの誕生
Nupediaの閉鎖とWikipediaの発展 ── 伽藍とバザール
Wikimedia財団の設立
Wikipediaが成功した理由
コラム:Wikipediaを「Wiki」と呼んでいいか
18章 Wikiの現在
Wiki企業の誕生
個人でのWikiの利用
さまざまな領域に特化したWikiエンジン
概念としてのWikiの利用
アラン・ケイによるWikiエンジン
終章 時を超えた創造の原則
アレグザンダーの思想が及ぼした影響
建築
ソフトウェア開発
Wiki
「無名の質」を追い求める
時を超えた創造の原則へ